package main

import (
	"fmt"
)

/*===goruntine===
  - 多个goruntine可以在一个线程上执行
*/
func main() {
	ch := make(chan string)
	for i := 0; i < 5; i++ {
		go printHelloWorld(i, ch)
	}
	//time.Sleep(time.Second)
	/* [note] for 循环遍历 */
	for {
		tmp, ok := <-ch
		if !ok {
			break
		}
		fmt.Println(tmp)
	}
}
func printHelloWorld(i int, ch chan string) {
	//TODO 不添加 for 循环，会导致死锁的原因？
	for {

		ch <- fmt.Sprintf("Hello World from goruntne %d \n", i)
	}
}
